Technical Field
The present invention relates to system migration and object migration in computing environments, and more particularly to wave planning and execution for performing the migration.
Description of the Related Art
Migration is the process of transferring data, programs, applications, etc. between storage types, formats, computer systems, etc. Migration may be partially performed programmatically to achieve a partially automated migration, freeing up human resources from tedious tasks. When organizations or individuals change computer systems or upgrade to new systems, or when organizations merge, migration is usually employed. During migration, information, programs, etc. on an old system is mapped to a new system relating old data formats, etc. to the new system's formats and requirements.
In information technology (IT) migration projects, it is difficult to migrate all objects that are to be migrated at the same time. However, it is also not desirable to migrate object by object, because many steps such as placement optimization, mutual addressing of the migrated objects, and testing of overall applications, are better performed with many objects together.
IT migration activities include server and application consolidation, transformation, virtualization, etc. One aspect of migration is that certain software objects, such as applications, middleware, or entire operating system images, are to be moved to a different platform, such as other servers, other operating systems, other middleware versions or types, or another environment such as clouds. When an enterprise decides on a migration project, the goal is typically to migrate a large number of objects, so that the resulting savings exceed the planning and execution costs of the migration project. However, one cannot usually move all the objects at once or even a subset that is selected to be migrated. One reason is that migration is time-consuming. Another reason may be that costs do not permit acquiring all the desired new hardware at the same time, or if the migration is done to consolidate existing hardware or existing facilities, hardware or floor space may need to be freed up by migrating some objects, before migrating other objects.
The opposite extreme, i.e., migrating objects one by one, is also not desirable. For example, one typically wants to move an entire business application at once so that it only needs to be tested once. Furthermore, if one object uses or addresses another object, migrating the used or addressed object means that changes in the using or addressing object need to be made, and the two objects should best be migrated together. Another reason for migrating interacting objects at the same time is related to geographic closeness or good network connectivity. The overall application may not be able to have the desired throughput or latency if some objects have already been migrated and others have not.